package org.imple;


import org.dao.StudentDao;
import org.entity.Student;
import org.util.DButil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;

public class StudentImple implements StudentDao {

    public int addStu(Student s) {

        int r = 0 ;

        // 第一：定义要操作数据库的SQL语句
        // ctrl + shift + u
        String sql = "INSERT INTO STUDENT(STUNO,NAME,AGE,SEX) VALUES (?,?,?,?)" ;

        // 第二：获取连接对象
        Connection conn = DButil.getConnection() ;
        PreparedStatement pstmt = null ;

        // 第三：预编译SQL语句并返回语句对象
        try {
            pstmt = conn.prepareStatement(sql) ;
            // 第四：填充参数（占位符）
            // 语句对象.setXxx(占位符下标索引,数据) ;
            // 其中，Xxx指是字段对应的数据类型
            pstmt.setString(1,s.getStuNo()) ;
            pstmt.setString(2,s.getName()) ;
            pstmt.setInt(3,s.getAge()) ;
            pstmt.setString(4,s.getSex()) ;

            // 第五：执行SQL语句
            // 整数 变量 = 语句对象.executeUpdate() ; // 执行增、删、改操作，返回受影响的行数
            // ResultSet rst = 语句对象.executeQuery() ; // 执行查询操作，返回查询数据的结果，我们需要对此结果进行封装(List)
            r = pstmt.executeUpdate() ;

            // 第六：处理结果
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            // 第七：关闭相关对象
            DButil.close(null,pstmt,conn);
        }

        return r;
    }

    /**
     * 删除
     * @param id
     * @return
     */
    public int deleteStu(int id) {
        return 0;
    }


    /**
     * 修改
     * @param s
     * @return
     */
    public int updateStu(Student s) {
        return 0;
    }


    /**
     * 查询
     * @return
     */
    public List<Student> findStu() {




        return null;
    }
}
